
const fs=require("fs")
const path = require("path")

const jimp=require("jimp")

const {insertContent,getMomentById,getQueryList}=require("../service/MomentService")
const  {updateContent,removeContent}=require("../service/AuthService")
const {hasLabel,add}=require("../service/labelSerivce")


class MomentController{
    //创建动态
    async  create(ctx,next){
        console.log(ctx.user)
       const result= await insertContent(ctx)
        ctx.body= result
        next()
    }
    //获取详情
    async detail(ctx,next){
         const result =await getMomentById(ctx.params.monmentid)
         
         ctx.body=result
  
    }
    //获取全部动态
    async querylist(ctx,next){
        //获取数据
        const {offset,size}=ctx.query;
        //查询列表
        const result=await getQueryList(offset,size);
       
        ctx.body=result;
        await next()
    }
    //动态更新
    async update(ctx,next){
        //获取登录的id
        console.log("更新成功")
        const {momentid} = ctx.params;
        console.log(momentid)
        //获取内容
        const {content}=ctx.request.body;
        console.log(content)
       //修改内容
        const result=await  updateContent(content,momentid)
        ctx.body=result;
     
    }
    //删除动态
    async remove(ctx,next){
        //获取登录的id
        const {momentid}=ctx.params;
        //删除内容
        const result= await removeContent(momentid)
      
        ctx.body=result
    }
    //添加标签
    async addLabel(ctx,next){
        //获取参数
        const {labels}=ctx;
        const {momentid}=ctx.params 
       
        //判断标签是否添加
        for (const label of labels) {
            //注意返回的是数组对象 并不能直接解构
            console.log(label.id)
            const result=await hasLabel(momentid,label.id)
  
            if(result.length===0){
                 const momentlabel=await add(momentid,label.id)
                 
            }
        }
        ctx.body="添加标签完成"
    }
    async resizePictrue(ctx,next){
          //获取所有图片信息
          const files=ctx.req.files;
          //对图片做处理
          for (const file of files) {
              //获取写入的路径
              const desPath=path.join(file.destination,file.filename)
              //返回的是primise直接处理
              jimp.read(file.path).then(
                  image=>{
                      image.resize(1280,jimp.AUTO).write(`${desPath}-large`);
                      image.resize(640,jimp.AUTO).write(`${desPath}-middle`);
                      image.resize(320,jimp.AUTO).write(`${desPath}-small`)
                  }
              )
          }
         await  next()
    }
}
module.exports=new MomentController();